// Copyright (C) ZHENG Zhong <heavyzheng nospam-at gmail D0T com>
//
// $Id: config_multi_dests.hpp 230 2008-09-15 15:50:18Z heavyzheng $
//

//! \example config_multi_dests.hpp
//!
//! This is a wrapping file for the logging library. It is recommended that you...
//!
//! - use a single wrapping header to include the logging library. The header should contain a
//!   function for retrieving named loggers.
//! - implement the logger-retrieving function in a corresponding source file to make sure the log
//!   factory be well configured before any logger is created.
//! - put both the header file and the source file in your source directory, so that they are only
//!   visible inside your project.
//! - use #include "relative-path-to/your-wrapping-header.hpp" to include the wrapping header, and
//!   include it only in your .cpp files.
//!
//! A sample project layout is as the following:
//!
//! \code
//!
//! your-project-root/
//!  |
//!  `-- src/                     // your source directory
//!  |    `-- logging_wrapper.hpp // logging-wrapping header file visible only inside src/
//!  |    `-- logging_wrapper.cpp // logging-wrapping source file
//!  |    `-- your_file_1.cpp     // your source file 1 that #include's logging_wrapper.hpp
//!  |    `-- your_file_2.cpp     // your source file 2 that #include's logging_wrapper.hpp
//!  |    `-- ...                 // more of your source files
//!  |
//!  `-- include/                 // your include (header) directory
//!       `-- your_file_1.hpp     // your header file 1 that does not depend on logging
//!       `-- your_file_2.hpp     // your header file 2 that does not depend on logging
//!       `-- ...                 // more of your header files
//!
//! \endcode

#ifndef ZZHENG_LOGGING_EXAMPLE_CONFIG_MULTI_DESTS_HPP_20080902__
#define ZZHENG_LOGGING_EXAMPLE_CONFIG_MULTI_DESTS_HPP_20080902__

//
// Link to the log4cplus logging implementation.
//
#ifndef ZZHENG_LOGGING_USES_LOG4CPLUS
#  define ZZHENG_LOGGING_USES_LOG4CPLUS
#endif // ZZHENG_LOGGING_USES_LOG4CPLUS

//
// Link with the shared zzheng.logging library.
//
#ifndef ZZHENG_LOGGING_SHARED_LIB
#  define ZZHENG_LOGGING_SHARED_LIB
#endif // ZZHENG_LOGGING_SHARED_LIB

//
// Include the header file after the macros are well defined.
//
#include <zzheng/logging.hpp>

#include <string>

namespace zzheng {
namespace example {

    // The entry point for requesting a logger object.
    logging::logger get_logger_to_multi_dests(const std::string& name);

} // namespace zzheng::example
} // namespace zzheng


#endif // ZZHENG_LOGGING_EXAMPLE_CONFIG_MULTI_DESTS_HPP_20080902__


